package com.bd.myprotolib.bean;

import com.hailiao.hlbdcore.annotation.HLBDFieldIn4;
import com.hailiao.hlbdcore.base.BaseInBean;
import com.hailiao.hlbdcore.constant.ConversionType;

import org.jetbrains.annotations.NotNull;

/**
 * 系统自检
 * @Author: D10NG
 * @Time: 2021/12/3 14:49
 */
public class XTZJ_Bean extends BaseInBean {

    /**
     * index：代表第几个参数，从0开始
     * itemLength：表示当前参数占有多少个字节
     * conversion：转换类型，仅用在string类型参数上
     * name：描述信息，在打印时使用 toReadString()
     */
    @HLBDFieldIn4(index = 0, itemLength = 4, conversion = ConversionType.STRING_INT, name = "用户地址，仅为0000000")
    public String address = "0000000";

    @HLBDFieldIn4(index = 1, itemLength = 2, name = "自检频度")
    public int frequency = 1;

    public XTZJ_Bean() {
        // size: 表示除了表头，长度，校验和以外的参数有多少个
        // template：仅为了协议描述输出时使用 toProtocolDescription();
        super(2, "$XTZJ<s(2)><p(4)><p(2)><h(1)>");
    }

    public XTZJ_Bean(int size, String template) {
        super(size, template);
    }

    @NotNull
    @Override
    public byte[] toParams4() {
        // 可以在这里重写生成方法
        // 只需要生成参数段的字节数组即可，在发送时会自动封装 表头，长度，校验和
        return super.toParams4();
    }
}
